package org.wu.framework.automation.platform.server.starter.application;

import org.wu.framework.automation.platform.server.starter.application.dto.AutomationNodeActionRecordDTO;
import org.wu.framework.web.response.Result;
import org.wu.framework.automation.platform.server.starter.domain.model.automation.node.action.record.AutomationNodeActionRecord;
import org.wu.framework.automation.platform.server.starter.application.command.automation.node.automation.node.action.record.AutomationNodeActionRecordRemoveCommand;
import org.wu.framework.automation.platform.server.starter.application.command.automation.node.automation.node.action.record.AutomationNodeActionRecordStoryCommand;
import org.wu.framework.automation.platform.server.starter.application.command.automation.node.automation.node.action.record.AutomationNodeActionRecordUpdateCommand;
import org.wu.framework.automation.platform.server.starter.application.command.automation.node.automation.node.action.record.AutomationNodeActionRecordQueryListCommand;
import org.wu.framework.automation.platform.server.starter.application.command.automation.node.automation.node.action.record.AutomationNodeActionRecordQueryOneCommand;

import java.util.List;
import org.wu.framework.lazy.orm.database.lambda.domain.LazyPage;
import org.wu.framework.lazy.orm.core.persistence.reverse.lazy.ddd.DefaultDDDLazyApplication;

/**
 * describe 自动化记录 
 *
 * @author Jia wei Wu
 * @date 2023/11/06 02:08 下午
 * @see DefaultDDDLazyApplication
 **/

public interface AutomationNodeActionRecordApplication {


    /**
     * describe 新增自动化记录
     *
     * @param
     * @return
     * @exception/throws
     * @author Jia wei Wu
     * @date 2023/11/06 02:08 下午
     **/

    Result<AutomationNodeActionRecord> story(AutomationNodeActionRecordStoryCommand automationNodeActionRecordStoryCommand);

    /**
     * describe 更新自动化记录
     *
     * @param
     * @return
     * @exception/throws
     * @author Jia wei Wu
     * @date 2023/11/06 02:08 下午
     **/

    Result<AutomationNodeActionRecord> updateOne(AutomationNodeActionRecordUpdateCommand automationNodeActionRecordUpdateCommand);

    /**
     * describe 查询单个自动化记录
     *
     * @param
     * @return
     * @exception/throws
     * @author Jia wei Wu
     * @date 2023/11/06 02:08 下午
     **/

    Result<AutomationNodeActionRecordDTO> findOne(AutomationNodeActionRecordQueryOneCommand automationNodeActionRecordQueryOneCommand);

    /**
     * describe 查询多个自动化记录
     *
     * @param
     * @return
     * @exception/throws
     * @author Jia wei Wu
     * @date 2023/11/06 02:08 下午
     **/

    Result <List<AutomationNodeActionRecordDTO>> findList(AutomationNodeActionRecordQueryListCommand automationNodeActionRecordQueryListCommand);

    /**
     * describe 分页查询多个自动化记录
     *
     * @param
     * @return
     * @exception/throws
     * @author Jia wei Wu
     * @date 2023/11/06 02:08 下午
     **/

    Result <LazyPage<AutomationNodeActionRecordDTO>> findPage(int size,int current,AutomationNodeActionRecordQueryListCommand automationNodeActionRecordQueryListCommand);

    /**
     * describe 删除自动化记录
     *
     * @param
     * @return
     * @exception/throws
     * @author Jia wei Wu
     * @date 2023/11/06 02:08 下午
     **/

    Result<AutomationNodeActionRecord> remove(AutomationNodeActionRecordRemoveCommand automationNodeActionRecordRemoveCommand);

}